The present disclosure relates in general to the field of data storage systems and, more particularly, to a system and method for managing storage resources in a clustered computing environment.
Storage area networks (SANs) often include a collection of data storage resources communicatively coupled to a plurality of nodes such as workstations and servers. In the present disclosure, the term xe2x80x9cnodexe2x80x9d and xe2x80x9cserverxe2x80x9d are used interchangeably, with the understanding that a xe2x80x9cserverxe2x80x9d is one type of xe2x80x9cnodexe2x80x9d.
Within a SAN, a server may access a data storage resource across a fabric using the Fibre Channel protocol. The Fibre Channel protocol may act as a common physical layer that allows for the transportation of multiple upper layer protocols, such as the small computer system interconnect (SCSI) protocol. In a SAN environment, the SCSI protocol may assign logical unit numbers (LUNs) to the collection of data storage resources. The LUNs may allow a server within a SAN to access specific data storage resources by referencing a SCSI LUN for a specific data storage resource.
Though a Fibre Channel storage system can offer a great deal of storage capacity, the system can also be very expensive to implement. As a result, users often seek to share the available storage provided by the system among multiple servers. Unfortunately, if a server coupled to a given SAN uses the MICROSOFT WINDOWS NT operating system, the server may attempt to take ownership of any LUN visible to the server. For example, if a particular server detects several LUNs when the server boots, it may assume each LUN is available for its use. Therefore, if multiple WINDOWS NT servers are attached to a storage pool or a collection of data storage resources, each server may attempt to take control of each LUN in the storage pool. This situation can lead to conflicts when more than one server attempts to access the same LUN.
A user seeking to solve this problem may partition or zone the available storage through filtering or through the use of miniport drivers that have LUN masking capabilities. In effect, this partitioning may prevent a server running WINDOWS NT from seeing storage capacity that is not assigned to it. This approach may be effective for stand-alone servers, but the approach has several shortcomings in a clustered computing environment.
Clustering involves the configuring of a group of independent servers so that they appear on a network as a single machine. Often, clusters are managed as a single system, share a common namespace, and are designed specifically to tolerate component failures and to support the addition or subtraction of components in a transparent manner. Unfortunately, because a cluster may have two or more servers that appear to be a single machine, the partitioning techniques mentioned above may prove an ineffective solution for avoiding conflicts when the two or more servers attempt to access the same LUN.
MICROSOFT CLUSTER SERVER (MSCS) embodies one currently available technique for arbitrating conflicts and managing ownership of storage devices in a clustered computing environment. An MSCS system may operate within a cluster that has two servers, server A, which may be in charge, and server B. In operation, server A may pass a periodic heartbeat signal to server B to let server B know that server A is xe2x80x9calivexe2x80x9d. If server B does not receive a timely heartbeat from server A, server B may seek to determine whether server A is operable and/or whether server B may take ownership of any LUNs reserved for server A. Unfortunately, these MSCS system may utilize SCSI target resets during this process, and the SCSI resets may create several problems. For example, a typical SCSI reset in the MSCS system may cause all servers within a given Fibre Channel system to abort their pending input/output xe2x80x9cI/Oxe2x80x9d processes. These aborted I/O processes may eventually be completed but not until the bus settles. This abort/wait/retry approach can have a detrimental effect on overall system performance.
In addition to this potential effect on performance, the MSCS system and its use of SCSI resets may have a detrimental effect on overall system reliability. In operation, the MSCS system may only account for one SCSI reset at a time. The inability to account for subsequent SCSI resets may lead to unexpected behavior and decrease system reliability.
In accordance with the present disclosure, a system and method for managing storage resources in a clustered computing environment are disclosed that provide significant advantages over prior developed techniques. The disclosed system and method may allow for storage resource management and conflict arbitration with a reduced reliance on SCSI resets.
According to one aspect of the present disclosure, a method for managing storage resources in a clustered computing environment may include holding a reservation on a storage resource for a first node of the clustered computing environment. The node may be, for example, a server, a workstation, or any other computing device included within the cluster.
A third party process log out for the first node may be performed and the reservation held for the first node may be released. In one embodiment, the third party process log out may occur in response to a log out command sent on behalf of the first node. The third party process log out command may be sent, for example, by a second node or a Fibre Channel switch. The third party process log out command may include identification information that identifies the first node as the sender of the log out command even though the first node was not the actual sender. The identification information may include, for example, a world wide name and a source identifier assigned to the first node.
Managing storage resources in a clustered computing environment may additionally involve the zoning of a Fibre Channel storage system. A zone may group a first node with a second node and a plurality of storage resources such as hard drives and other data storage devices. In the zoned system, a second node may log itself out after a third party process log out command has been issued for a first node. After the two nodes are logged out, a loop initialization protocol (LIP) link reset may be initiated, a state change notification may be generated, and any functioning nodes may re-login.
According to another aspect of the present disclosure, a method for managing storage resources in a clustered computing environment may include receiving a reservation command that seeks to reserve a storage resource for a node within the cluster. In response to the reservation command, a SCSI persistent reserve out command with a service action of reserve may be issued to reserve the storage resource for the node. This persistent reserve may hold a clearable reservation on the storage resource. In one embodiment, the reservation may be cleared by issuing a SCSI persistent reserve out command with a service action of clear. The persistent reserve commands may allow LUN reservations to be individually released as opposed to clearing several LUN reservation at once with a SCSI reset.
According to another aspect of the present disclosure, a computer system operable to manage storage resources in a clustered computing environment may include a first node, a second node, and a resource management engine operable to log out the first node in response to a failure by the second node to receive a timely heartbeat signal from the first node. The system may also include a computer readable medium storing the resource management engine and a central processing unit communicatively coupled to the computer readable medium and operable to execute the resource management engine.
In one embodiment, the system may also include a plurality of computing platforms communicatively coupled to the first node. These computing platforms may be, for example, a collection of networked personal computers. The system may also include a Fibre Channel switch communicatively coupled to the first node and to a plurality of storage resources. The Fibre Channel switch may, in some embodiments, include a central processing unit operable to execute a resource management engine.
A system and method incorporating teachings of the present disclosure may provide significant improvements over conventional cluster resource management solutions. For example, the disclosed techniques may be operable to better manage and arbitrate storage resource conflicts. As discussed above, a SCSI reset in a clustered computing environment can result in the initiation of an abort/wait/retry approach to several I/O processes, which can have a detrimental effect on overall system performance. The teachings of the present disclosure may help reduce reliance on SCSI resets and the resulting performance degradations.
In addition, the teachings of the present disclosure may facilitate the avoidance of system reliability problems associated with SCSI resets in a clustered computing environment. A conventional cluster resource management system, such as MSCS, may be unable to account for SCSI resets initiated during the bus disturbance of an earlier SCSI reset. This limitation may lead to unexpected behavior and decrease system reliability. Because the teachings of the present disclosure may facilitate the avoidance of at least some SCSI resets, system reliability may be improved.
Other technical advantages should be apparent to one of ordinary skill in the art in view of the specification, claims, and drawings.